#ifndef _H_SHADER_INTE
#define _H_SHADER_INTE
#include "../core/shader.hpp"
#include "../core/material.hpp"
#include "../core/optics.hpp"
namespace chen {

class PathShader: public SamplerShader {
    public:
    const int MAXDEP = 10;
    int ray_split;
    int nbsdf_samples, nlight_samples;
    PathShader (const Scene * sce, const Camera * cam, Sampler * sampler, int split, int nbs, int nls) ;
    Spectrum Li (const RayDifferential & r) const ;
    Spectrum LiRecursive (const Ray & r, Float q, int dep = 0) const ;
    virtual void prepare () ;
};

}
#endif